草庐IT

c++ - XML Schema 到 C++ 类

全部标签

c++ - 在 C 代码中使用 C++ 库

我有一个C++库,它提供各种用于管理数据的类。我有这个库的源代码。我想扩展C++API以支持C函数调用,以便该库可以同时与C代码和C++代码一起使用。我使用的是GNU工具链(gcc、glibc等),因此语言和架构支持不是问题。是否有任何理由说明这技术上不可能?有什么我需要注意的陷阱?是否有相关资源、示例代码和/或文档可用?我发现的其他一些事情:使用以下内容来包装C代码需要使用的C++header。#ifdef__cplusplusextern"C"{#endif////Codegoeshere...//#ifdef__cplusplus}//extern"C"#endif将“真正的”C

c++ - 在 C 代码中使用 C++ 库

我有一个C++库,它提供各种用于管理数据的类。我有这个库的源代码。我想扩展C++API以支持C函数调用,以便该库可以同时与C代码和C++代码一起使用。我使用的是GNU工具链(gcc、glibc等),因此语言和架构支持不是问题。是否有任何理由说明这技术上不可能?有什么我需要注意的陷阱?是否有相关资源、示例代码和/或文档可用?我发现的其他一些事情:使用以下内容来包装C代码需要使用的C++header。#ifdef__cplusplusextern"C"{#endif////Codegoeshere...//#ifdef__cplusplus}//extern"C"#endif将“真正的”C

c++ - 在 C/C++ 中检查 NULL 指针

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题吗?更新问题,以便editingthispost提供事实和引用来回答它.关闭7年前。Improvethisquestion在最近的一次代码审查中,一位贡献者正试图强制以下列方式对指针执行所有NULL检查:int*some_ptr;//...if(some_ptr==NULL){//Handlenull-pointererror}else{//Proceed}而不是int*some_ptr;//...if(some_ptr){//Proceed}else{//Handlenull-pointererror}我同

c++ - 在 C/C++ 中检查 NULL 指针

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题吗?更新问题,以便editingthispost提供事实和引用来回答它.关闭7年前。Improvethisquestion在最近的一次代码审查中,一位贡献者正试图强制以下列方式对指针执行所有NULL检查:int*some_ptr;//...if(some_ptr==NULL){//Handlenull-pointererror}else{//Proceed}而不是int*some_ptr;//...if(some_ptr){//Proceed}else{//Handlenull-pointererror}我同

iphone - 在Objective-C中从类名的NSString创建对象

我想知道如果我有类的名称,是否可以创建某个类的对象在NSString中。我知道这在ActionScript、C#和PHP等其他语言中也是可能的......类似这样的:NSString*className=@"AwesomeViewController";UIViewController*object=[[classNamealloc]initWithNibName:classNamebundle:nil]; 最佳答案 类也是Objective-C中的一等对象。您可以使用NSClassFromStringfunction从NSStri

iphone - 在Objective-C中从类名的NSString创建对象

我想知道如果我有类的名称,是否可以创建某个类的对象在NSString中。我知道这在ActionScript、C#和PHP等其他语言中也是可能的......类似这样的:NSString*className=@"AwesomeViewController";UIViewController*object=[[classNamealloc]initWithNibName:classNamebundle:nil]; 最佳答案 类也是Objective-C中的一等对象。您可以使用NSClassFromStringfunction从NSStri

c++ - "Memory allocated at compile time"的真正含义是什么?

在C和C++等编程语言中,人们经常提到静态和动态内存分配。我理解这个概念,但“在编译时分配(保留)所有内存”这句话总是让我感到困惑。据我了解,编译将高级C/C++代码转换为机器语言并输出可执行文件。如何在编译文件中“分配”内存?内存不是总是与所有虚拟内存管理的东西一起分配在RAM中吗?根据定义,内存分配不是运行时概念吗?如果我在我的C/C++代码中创建一个1KB的静态分配变量,这是否会使可执行文件的大小增加相同的数量?这是在“静态分配”标题下使用该短语的页面之一。BackToBasics:Memoryallocation,awalkdownthehistory

c++ - "Memory allocated at compile time"的真正含义是什么?

在C和C++等编程语言中,人们经常提到静态和动态内存分配。我理解这个概念,但“在编译时分配(保留)所有内存”这句话总是让我感到困惑。据我了解,编译将高级C/C++代码转换为机器语言并输出可执行文件。如何在编译文件中“分配”内存?内存不是总是与所有虚拟内存管理的东西一起分配在RAM中吗?根据定义,内存分配不是运行时概念吗?如果我在我的C/C++代码中创建一个1KB的静态分配变量,这是否会使可执行文件的大小增加相同的数量?这是在“静态分配”标题下使用该短语的页面之一。BackToBasics:Memoryallocation,awalkdownthehistory

c++ - 在 C/C++ 中检测多余的#include?

我经常发现文件的标题部分一直在变大,但从未变小。在源文件的整个生命周期中,类可能已经移动和重构,并且很有可能有很多#includes不再需要存在。将它们留在那里只会延长编译时间并添加不必要的编译依赖项。试图找出仍然需要哪些可能非常乏味。是否有某种工具可以检测多余的#include指令并建议我可以安全删除哪些指令?lint可能会这样做吗? 最佳答案 Google的cppclean(链接到:download,documentation)可以找到几类C++问题,现在它可以找到多余的#includes。还有一个基于Clang的工具,incl

c++ - 在 C/C++ 中检测多余的#include?

我经常发现文件的标题部分一直在变大,但从未变小。在源文件的整个生命周期中,类可能已经移动和重构,并且很有可能有很多#includes不再需要存在。将它们留在那里只会延长编译时间并添加不必要的编译依赖项。试图找出仍然需要哪些可能非常乏味。是否有某种工具可以检测多余的#include指令并建议我可以安全删除哪些指令?lint可能会这样做吗? 最佳答案 Google的cppclean(链接到:download,documentation)可以找到几类C++问题,现在它可以找到多余的#includes。还有一个基于Clang的工具,incl